#ifndef __IAUDIO_OUT_AGORA_H__
#define __IAUDIO_OUT_AGORA_H__


#include "IBuffer.h"
#include "Header.h"

class IAudioOut
{
public:
	virtual ~IAudioOut(){};
	virtual char			**DetectDevice(void) = 0;
	virtual void			SelectOutDevice(char *) = 0;
	virtual void			SelectOutDevice(unsigned int) = 0;
	virtual void			AutoSelectOutDevice(void) = 0;
	virtual void			Start(void) = 0;
	virtual void			Stop(void) = 0;
	virtual bool			IsRunning() = 0;
	virtual void	AddSource(IBuffer *buffer, Header *header) = 0;
	virtual void	UpdateSourceConfiguration(IBuffer *buffer, Header *header) = 0;

	virtual void	RemoveSource(IBuffer *buffer) = 0;
//	virtual void	RemoveSource(unsigned int id) = 0;

	virtual void			StopSource(IBuffer *buffer) = 0;
//	virtual void			StopSource(unsigned int id) = 0;

	virtual void			StartSource(IBuffer *buffer) = 0;
//	virtual void			StartSource(unsigned int id) = 0;

	virtual unsigned int	GetNumberOfSources() = 0;

};

#endif
